/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.uniceub.fsw.academicmobile.control;
import br.uniceub.fsw.academicmobile.dao.DisciplinaDAO;
import br.uniceub.fsw.academicmobile.vo.ProfessorVO;
import br.uniceub.fsw.academicmobile.vo.DisciplinaVO;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import br.uniceub.fsw.academicmobile.dao.TurmaDAO;
import br.uniceub.fsw.academicmobile.vo.TurmaVO;
/**
 * Classe de negócio que gerencia as funcionalidades de Disciplina
 * Essa classe não é mais utilizada, mas foi mantida para consulta ou possível reuso
 * @author Anamaria Pimentel
 */
public class DisciplinaBO {
        private ProfessorVO professor;
        private DisciplinaDAO daoDisciplina;
        private TurmaDAO daoTurma;
        private TurmaVO turma;
    
        /**
         * Retorna código HTML de uma combobox com as disciplinas a partir do professor
         * @param request dados do formulário
         * @return String com o código ca combo
         */
        public String getComboDisciplina(HttpServletRequest request) {
		professor = (ProfessorVO) request.getSession().getAttribute("professor");
                DisciplinaVO disciplina = new DisciplinaVO();
                StringBuffer sb = new StringBuffer();
                daoDisciplina = new DisciplinaDAO();
                daoTurma = new TurmaDAO();
                ArrayList aList = new ArrayList();
                if(professor.getStCoordenador().equals("S")){
                  aList = daoTurma.consultarTurmaPorProfessor(professor);
                  turma = (TurmaVO) aList.iterator().next();
                  aList = daoDisciplina.consultarDisciplinaPorCurso(turma.getCurso());
                } else {
                  aList = daoDisciplina.consultarDisciplinaPorProfessor(professor);
                }
                sb.append("<SELECT NAME='cbDisciplina'>");
                sb.append("<OPTION VALUE='0'>Escolha uma Disciplina</OPTION>");
                for (int i = 0; i < aList.size(); i++) {
                    disciplina = (DisciplinaVO) aList.get(i);
                    sb.append("<OPTION VALUE='" + disciplina.getIdCdDisciplina().toString() + "'>" + disciplina.getNoDisciplina() + "</OPTION>");
                }
                sb.append("</SELECT>");

        return sb.toString();
       }
        
        
      /**
       * Método de interação com a tela
       * @param request dados do formulário
       * @return String com o retorno das operações
       */
      public String acao(HttpServletRequest request) {
        StringBuffer dados = new StringBuffer();
        String funcao = request.getParameter("operacao");

        if (funcao.equals("pesquisar")) {
            String disciplinaCombo = request.getParameter("cbDisciplina");
            dados = pesquisar(disciplinaCombo);
        }

 return dados.toString();
    }

  /**
   * Retorna os dados da disciplina
   * @param disciplinaCombo id da disciplina
   * @return StringBuffer contendo os dados da disciplina formatados em codigo HTML
   */
    private StringBuffer pesquisar(String disciplinaCombo) {
        StringBuffer sb = new StringBuffer();
        DisciplinaVO vo = new DisciplinaVO();
        DisciplinaVO voRecebe = new DisciplinaVO();
        vo.setIdCdDisciplina(Integer.parseInt(disciplinaCombo));
        daoDisciplina = new DisciplinaDAO();
         voRecebe =  daoDisciplina.consultarDisciplinaPorId(vo);
         voRecebe.getNrPeriodo();
            sb.append("<TR>\r\n");
            sb.append("<TD>" + voRecebe.getNoDisciplina() + "</TD>\r\n");
            sb.append("<TD>" + voRecebe.getCurso().getNoCurso() + "</TD>\r\n");
            sb.append("<TD>" + voRecebe.getHrCarga() + "</TD>\r\n");
            sb.append("<TD>" + voRecebe.getNrPeriodo() + "</TD>\r\n");
            sb.append("</TR>\r\n");
            sb.append("<TR>\r\n");
            sb.append("<TD><INPUT TYPE='submit' VALUE='Material'>\r\n");
            sb.append("<input type='hidden' name='id_disciplina' value='"+voRecebe.getIdCdDisciplina()+"'</TD>");
            sb.append("</TR>\r\n");
            
            return sb;
    }
}
